  /*
        设置cookie
        @param {String} key  表示cookie名称
        @param {String} value 表示cookie的值
        @param {Number} time 表示cookie的过期时间  选填（时间为秒数）
        */

  function setCookie(key, value, time) {
      let expires = ''
      if (time) {
          let d = new Date()
          d.setTime(d.getTime() + time * 1000)
          expires = d.toUTCString()
      }
      document.cookie = `${key}=${value};expires=${expires};path=/`
  }

  /*
            获取cookie
            @param {String} key  表示cookie名称
            */
  function getCookie(key) {
      let arr = document.cookie.split('; ')
      let obj = {}
      arr.forEach(item => {
          let res = item.split('=')
          obj[res[0]] = res[1]
      })

      console.log(obj)
      return obj[key]
  }
  /*
            获取cookie
            @param {String} key  表示cookie名称
            */
  function delCookie(key) {
      setCookie(key, '1', -1)
  }

  // 删除所有的cookie
  function clearAllCookie() {
      //  获取所有的cookie名称  
      // console.log(document.cookie)

      let arr = document.cookie.split('; ')
      let newArr = []
      arr.forEach((item) => {
          let res = item.split('=')
          newArr.push(res[0])
      })
      // 循环所有的cookie名称 依次删除
      newArr.forEach((result) => {
          delCookie(result)
      })


  }


//   ajax_get请求方式封装 
//   @param {String}  url 表示请求地址
//   @param {Object}  query 表示请求参数
//   @param {Function}  success 表示成功时候的回调函数
//   @param {Function}  error 表示失败时候的回调函数
//   */
function pAjaxGet(options) {
return new Promise((resolve, reject) => {
   // 判断url必传
   if (!options.url) {
       alert('请填写请求地址')
       return false
   }
   //  创建对象
   var xhr = new XMLHttpRequest()
   if (options.query) {
       var str = '?'
       for (var key in options.query) {
           str += `${key}=${options.query[key]}`
           str += '&'
       }

       str = str.slice(0, -1)
       xhr.open('get', options.url + str)
   } else {
       xhr.open('get', options.url)
   }
   //  三元表达式 判断是否有传递的参数 
   // xhr.open('get', query ? url + str : url)

   xhr.send()
   xhr.onreadystatechange = () => {

       if (xhr.readyState == 4) {

           if (xhr.status == 200) {
               // options.success && options.success(xhr.response)
               resolve(xhr.response)

           } else {
               //  options.error && options.error(xhr.response)
               reject(xhr.response)
           }

       }

   }
})

}


// ajax_post请求方式封装 
// @param {String}  url 表示请求地址
// @param {Object}  query 表示请求参数
// @param {Function}  success 表示成功时候的回调函数
// @param {Function}  error 表示失败时候的回调函数
// */
function pAjaxPost(options) {
return new Promise((resolve, reject) => {
// 判断url必传
if (!options.url) {
 alert('请填写请求地址')
 return false
}
//  创建对象
var xhr = new XMLHttpRequest()
xhr.open('post', options.url)
//如果需要像 HTML 表单那样 POST 数据,以&形式传输数据
xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');
if (options.query) {
 var str = ''
 for (var key in options.query) {
     str += `${key}=${options.query[key]}`
     str += '&'
 }
 str = str.slice(0, -1)
 xhr.send(str)
} else {
 xhr.send(str)
}
//  三元表达式 判断是否有传递的参数 
// xhr.send( options.query ?  str : '')

xhr.onreadystatechange = () => {

 if (xhr.readyState == 4) {

     if (xhr.status == 200) {
        //  options.success && options.success(xhr.response)
        resolve(xhr.response)


     } else {
        //  options.error && options.error(xhr.response)
        reject(xhr.response)
     }

 }

}
})

}

// jsonp跨域封装 
// @param {String} url  代表请求地址  
// @param {Object} query  代表请求参数  
// */

function jsonP(url, query) {
    if (!url || !query) {
        alert('url 和参数必传！')
        return
    }
    var script = document.createElement('script')
    var str = '?'
    for (var key in query) {
        str += `${key}=${query[key]}&`
    }
    str = str.slice(0, -1)
    script.src = url + str
    document.body.appendChild(script)
    document.body.removeChild(script)
}

